The present invention relates generally to development software and methods thereof and, in particular, to a method for developing embedded code for system simulations and for use in a Human Machine Interface (HMI) of a microcontroller-based product.
In recent years, the growth of consumer electronics productivity and communication products has begun to invade the automotive industry. Interior systems, where the bulk of a vehicle's Human-Machine Interface (HMI) exists, are becoming vastly complex. HMI devices (HMIs), such as “touch-screens” and the like, respond to commands executed by the occupants of the vehicle to display driving directions, operate the radio and climate controls, as well as emulate instrument panels. In order to respond to the commands of the vehicle occupants, software code for the display, functionality, and behavior of the HMI must be written, developed, and embedded within the product processor in order for the product to operate properly.
In the development of the embedded code for prior art HMIs, physical prototypes were necessary to model the product for human factors engineers and to demonstrate the product for potential sales. In the prior art, steps taken from product conception to the delivered software product included creating a two-dimensional image of the HMI display, converting the two-dimensional image to a three-dimensional CAD model, which could then be used in a prototype demonstration. The prototype typically consists of large surface data files that are viewed on large stereoscopic display systems. These are largely static images that may be able to display some dynamic characteristic such as lighting effects and change of surface colors and textures. These immersive technology prototypes are typically utilized for first-surface reviews. Code had to be written, debugged, and compiled for the prototype demonstration. After the demonstration, however, the software code developed for the prototypes was not usable in the final product, resulting in a waste of the resources utilized to create the prototype and a loss of the code used in the prototype.
In addition, in the early stages of the software development, the behaviors of the HMIs have traditionally been captured in a natural language engineering specification. These natural language specifications take great amounts of effort to create and refine and normally the result is a rather large document delivered very late in the development process. Often these documenting efforts last well into the development cycle and occur concurrently with product software development. Once software development has commenced, if the specification is incomplete, resolution of system performance details and other decisions will be made by the software designer and implemented in the product software without external documentation. When this occurs, the value and usefulness of the natural language specification drops dramatically. Additionally, the document is usually not retroactively updated if modifications in behavior are made directly to the source code instead of the document.
It is desirable, therefore, to reduce the dependence on the natural language specification and to reduce both the costs and the time required for developing HMI embedded code. Furthermore, it is desirable to establish a means of simulating the behavior of complete systems, including HMIs, prior to committing the expense of a full product prototype or product development.